---
title: Contract
summary: The WSDL-declared operations, message types, faults, and binding of the called service.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-22
---

# Contract

This page documents the contract of `` `FaxService`† `` as the WSDL declares it. It is the page a reader uses to answer "what can this service be asked to do, and in what shape".

| Field | Value |
| --- | --- |
| **Service** | `` `FaxService`† `` |
| **WSDL document** | `src\WCF\SAIF.Services.WCF.Host\Service References\Legacy.Fax\faxservice.wsdl` |
| **SOAP namespace** | `http://www.saif.com/` |
| **Port type / binding name** | `FaxServiceSoap` |
| **Binding** | SOAP 1.1 over HTTP |
| **Encoding style** | `Document` / `Literal` |
| **Parameter style** | Not applicable — message parts are named, not wrapped/bare styled in the WSDL |
| **Operations declared** | 1 |

## Contract source

The contract on this page is read from `src\WCF\SAIF.Services.WCF.Host\Service References\Legacy.Fax\faxservice.wsdl`, the checked-in WSDL captured at generation time. The generated `Reference.cs` is svcutil tool output cited only to confirm the proxy type name (`FaxServiceSoapClient`), its base type, and its SOAP action; it is not the source of the contract described below.

## Operations

| Operation | SOAP action | Input message | Output message | Faults | Called in this repository |
| --- | --- | --- | --- | --- | --- |
| [`Send`](operation-map.md#operation-map) | `http://www.saif.com/Send` | `SendSoapIn` — part `parameters`, element `tns:Send` | `SendSoapOut` — part `parameters`, element `tns:SendResponse` | None declared | Yes — [details](reference.md#send-faxinfo-faxjob) |

## Messages and types

| Type | Kind | Members | Used by |
| --- | --- | --- | --- |
| `Send` | Complex type | `FaxJob` (`tns:FaxInfo`, optional) | `Send` (input) |
| `FaxInfo` | Complex type | `Attachment` (`s:string`), `CoverSheetNote` (`s:string`), `ToCompanyName` (`s:string`), `ToFaxNumber` (`s:string`), `ToName` (`s:string`), `ToVoiceNumber` (`s:string`) — all optional | `Send` (input, via `FaxJob`) |
| `SendResponse` | Complex type (empty) | None | `Send` (output) |

### FaxInfo

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `Attachment` | `s:string` | Not stated in the WSDL | The path to the fax attachment; this repository populates it with a temporary file path, not the file content* |
| `CoverSheetNote` | `s:string` | Not stated in the WSDL | Cover sheet note text; never populated by this repository's call site |
| `ToCompanyName` | `s:string` | Not stated in the WSDL | Recipient company name; never populated by this repository's call site |
| `ToFaxNumber` | `s:string` | Not stated in the WSDL | Recipient fax number; populated from `FaxRecipient.FaxNumber` |
| `ToName` | `s:string` | Not stated in the WSDL | Recipient name; populated from `FaxRecipient.RecipientName` |
| `ToVoiceNumber` | `s:string` | Not stated in the WSDL | Recipient voice callback number; never populated by this repository's call site |

## Faults

The WSDL declares no faults. A failure reaches this repository as a generic SOAP fault surfaced by the proxy; see [Consumption](consumption.md) for how the call sites handle it.

## Binding details

| Aspect | Value |
| --- | --- |
| Transport | HTTP |
| Message version | SOAP 1.1 |
| Security mode | None declared in the WSDL — set in code, see [Architecture](architecture.md#endpoint-resolution) |
| Declared message size limits | None declared in the WSDL |

The WSDL also declares a `FaxServiceSoap12` port (SOAP 1.2) at the same address; this repository binds only the SOAP 1.1 `FaxServiceSoap` port, so `FaxServiceSoap12` is not used.

## Contract drift risk

| Aspect | Finding |
| --- | --- |
| WSDL captured at | Not determined from source |
| Live service documented by this run | No — `` `FaxService`† `` is not one of this run's `soapServiceHosts` and has no `docs/services/<slug>/` folder generated by this run |
| Verification possible | Not possible from this repository; the captured WSDL cannot be compared against the live service without external access to `` `FaxService`† `` |
| Consequence of drift | If the remote `Send` operation's shape changes, the generated proxy and this contract page are both stale until the reference is refreshed, and no automated check in this repository would detect the mismatch |

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library documentation via the Legends CLI. Statements marked with `*` were inferred from code structure or contextual evidence. Statements marked with `**` could not be confirmed; treat as unknown until verified.

## Sources
- `src\WCF\SAIF.Services.WCF.Host\Service References\Legacy.Fax\faxservice.wsdl`
- `src\WCF\SAIF.Services.WCF.Host\Services\LegacyProxies\FaxServiceProxy.cs`
